package com.yami.shop.consign.common.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yami.shop.bean.app.dto.OrderConsignUserDto;
import com.yami.shop.bean.dto.AuditParam;
import com.yami.shop.bean.dto.ConsignParam;
import com.yami.shop.bean.vo.ConsignSituationVO;
import com.yami.shop.common.bean.PageDTO;
import com.yami.shop.common.bean.PageVO;
import com.yami.shop.consign.common.model.ConsignSituation;


import java.util.List;
import java.util.Map;

public interface ConsignSituationService extends IService<ConsignSituation> {

    PageVO<ConsignSituationVO> getConsignPage(PageDTO pageDTO, List<Integer> status, String userId);

    PageVO<ConsignSituationVO> getPage(PageDTO pageDTO, ConsignSituation consign);

    void submitConsign(ConsignParam param);

    ConsignSituationVO getDetail(Long id);

    void updateConsignById(ConsignSituation situation);

    void offById(Long id, String userId);

    void cancelConsignById(Long id, String userId);

    /**
     * 锁定寄售商品状态1锁定中 0 未锁定
     * @param id
     * @return
     */
    Boolean updateSellStatus(Long id,Integer sellStatus);

    /**
     * 查询寄售商品是否锁单
     */

    void audit(ConsignSituationVO situation, Integer sysType);

    void batchAudit(AuditParam param);

    /**
     * 根据id 查询寄售详情
     * @param id
     * @return
     */
    ConsignSituationVO getInfo(Long id);


    /**
     * c端获取寄售详情
     * @param id
     * @return
     */
    Map<String, Object> getinfoById(Integer id);

    /**
     * 寄售状态 0：审核中 1：寄售中 2：已驳回 3：已出售 4：已取消
     * @param id
     * @return
     */
    void updateConsignStatus(Long id,Integer status);

    /**
     * 寄售购买下游
     * @param orderConsignUserVO
     */
    void orderConsignDown(OrderConsignUserDto orderConsignUserVO);


    List<String> lockingConsignByTokenId(String tokenId);
    
}
